import request from '@/utils/request';

/**
 * 分页查询角色列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 当前页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} [params.name] - 角色名称（可选）
 * @param {string} [params.value] - 角色值（可选）
 * @param {number} [params.status] - 状态（可选）：1-启用，0-禁用
 * @returns {Promise} 分页数据
 */
export const getRoleList = (params) => {
	return request({
		url: '/role',
		method: 'get',
		params
	});
};

/**
 * 新增角色
 * @param {Object} data - 角色数据
 * @param {string} data.name - 角色名称（必填，最小长度2）
 * @param {string} data.value - 角色值（必填，枚举值）
 * @param {string} [data.remark] - 角色备注（可选）
 * @param {number} data.status - 状态（必填，枚举值）：1-启用，0-禁用
 * @param {number[]} [data.menuIds] - 关联菜单、权限编号（可选）
 * @returns {Promise} 创建结果
 */
export const createRole = (data) => {
	return request({
		url: '/role',
		method: 'post',
		data
	});
};

/**
 * 更新角色
 * @param {number} id - 角色ID
 * @param {Object} data - 更新的角色数据
 * @param {string} data.name - 角色名称（必填，最小长度2）
 * @param {string} data.value - 角色值（必填，枚举值）
 * @param {string} [data.remark] - 角色备注（可选）
 * @param {number} data.status - 状态（必填，枚举值）：1-启用，0-禁用
 * @param {number[]} [data.menuIds] - 关联菜单、权限编号（可选）
 * @returns {Promise} 更新结果
 */
export const updateRole = (id, data) => {
	return request({
		url: `/role/${id}`,
		method: 'put',
		data
	});
};

/**
 * 删除角色
 * @param {number} id - 角色ID
 * @returns {Promise} 删除结果
 */
export const deleteRole = (id) => {
	return request({
		url: `/role/${id}`,
		method: 'delete'
	});
};

/**
 * 根据ID获取角色详情
 * @param {number} id - 角色ID
 * @returns {Promise} 角色详情
 */
export const getRoleById = (id) => {
	return request({
		url: `/role/${id}`,
		method: 'get'
	});
};